package com.qy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qy.entity.Order;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 订单服务接口
 */
public interface IOrderService extends IService<Order> {
    
    /**
     * 创建订单
     */
    Order createOrder(Order order);
    
    /**
     * 根据订单编号查询订单
     */
    Order getOrderById(String orderId);
    
    /**
     * 根据用户ID查询订单列表
     */
    List<Order> getOrdersByUserId(String userId);
    
    /**
     * 根据状态查询订单列表
     */
    List<Order> getOrdersByStatus(String status);
    
    /**
     * 根据时间范围查询订单列表
     */
    List<Order> getOrdersByTimeRange(Date startTime, Date endTime);
    
    /**
     * 更新订单状态
     */
    boolean updateOrderStatus(String orderId, String status, String statusName);
    
    /**
     * 支付订单
     */
    boolean payOrder(String orderId);
    
    /**
     * 取消订单
     */
    boolean cancelOrder(String orderId);
    
    /**
     * 多条件查询订单
     */
    List<Order> queryOrdersByCondition(Map<String, Object> params);
    
    /**
     * 获取订单总数
     */
    long getOrderCount();
    
    /**
     * 根据状态获取订单数量
     */
    long getOrderCountByStatus(String status);
}
